Skip to content

ci: validate each example's on-chain overlay too - #85

Merged
rickstaa merged 1 commit into
mainfrom
rs/validate-onchain-compose
Aug 19, 2026
Merged

ci: validate each example's on-chain overlay too#85
rickstaa merged 1 commit into
mainfrom
rs/validate-onchain-compose

Conversation

@rickstaa

Copy link
Copy Markdown
Member

The compose job parses every example's compose.yml and stops there, so not one compose.onchain.yml is checked by anything.

That is the file that most needs it. The offchain path is exercised constantly; the on-chain one needs a wallet, an RPC endpoint and a keystore, so realistically nobody runs it before merging. It is also the more fragile of the two, with a variable per account, path and password.

Compose interpolates ${VAR} as text before parsing the result as YAML, so an unset variable does not error, it becomes an empty string and can silently produce something malformed:

- ${SIGNER_KEYSTORE_DIR}:/keystore:ro     →     - :/keystore:ro
                                                invalid spec: empty section between colons

Interpolating each example's .env.example fixes that, and buys a second check for free: if someone adds a ${VAR} to an overlay and forgets to document it, CI goes red. Without that the failure lands on a user who copied .env.example to .env, filled it in, and still could not start the stack.

--env-file only feeds interpolation; it puts nothing into any container, and .env.example holds placeholders, so no secret is involved. The continue guard keeps an example without an overlay from failing the loop.

Testing

Ran the edited loop verbatim against main on all six examples: api-proxy, echo, hello-world, realtime-transcription, tiles, vllm all pass, and the loop exits 0. So this adds coverage without papering over an existing break.

Same change is going into template-livepeer-runner (#3) and streamdiffusion-livepeer-runner, which have the same gap.

The loop parses every compose.yml and stops there, so no
compose.onchain.yml is checked by anything. That is the file nobody runs
before merging, since it needs a wallet, an RPC and a keystore, and the
one most likely to break. Interpolating .env.example also proves that
file still lists every variable the overlay reads.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 19, 2026 12:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@rickstaa
rickstaa merged commit 8f1aa3b into main Aug 19, 2026
2 checks passed
@rickstaa
rickstaa deleted the rs/validate-onchain-compose branch August 19, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants